package com.example;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.junit.jupiter.api.Test;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * jwtText 类的描述信息
 *
 * @author 12427
 * @since 2025/6/8 9:20
 */
public class jwtText {
    Map<String,Object> map = new HashMap<>();
    @Test
    public void textJwt(){
        map.put("id",1);
        map.put("username","admin");
        String compact = Jwts
                .builder()//构建令牌
               .signWith(SignatureAlgorithm.HS256,"ezExMTIyMn0=")//签名算法
                .addClaims(map)//自定义数据
                .setExpiration(new Date(System.currentTimeMillis()+1000*3600))//一小时有效期
                .compact();//compact()压缩
        System.out.println(compact);
//        eyJhbGciOiJIUzI1NiJ9. 前面的是签名算法
//        eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsImV4cCI6MTc0OTM0OTg5OX0.//内容 和生成的setExpiration()方法生成的时间戳
//        Jf10ABecBOCo4ErKiCWCujDLW7myJY8zc9W31fCMvbw//前两个之和和自己的算法密钥生成的密钥

    }

//    解密
    @Test
    public void putJwt(){
        Claims body = Jwts.parser()
                .setSigningKey("ezExMTIyMn0=")
                .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsImV4cCI6MTc0OTM0OTg5OX0.Jf10ABecBOCo4ErKiCWCujDLW7myJY8zc9W31fCMvbw")
                .getBody();
        System.out.println(body);
    }
}
